package com.ten.java.doinit.service.create;

import com.ten.java.doinit.common.Context;
import com.ten.java.doinit.service.DBService;

import java.io.File;
import java.util.List;
import java.util.Map;

/**
 * 创建文件服务接口
 * @author zhangxs
 * @date 2022/7/8 15:19
 */
public interface CreateFileService {

    /**
     * 创建文件
     * @param tableInfo 字段信息集合，格式为<表名, 字段信息集合>
     * @return void
     * @author zhangxs
     * @date 2022/7/11 15:38
     */
    default void create(Map<String, List<DBService.Column>> tableInfo) {
        File dir = new File(Context.Config.projectPath + File.separator + getDirName());
        if (!dir.exists()) {
            dir.mkdirs();
        }
        String dirPath = dir.getPath();
        createFile(dirPath, tableInfo);
    }

    /**
     * 创建文件的根目录名称
     * @param
     * @return String
     * @author zhangxs
     * @date 2022/7/11 15:39
     */
    String getDirName();

    /**
     * 创建文件的逻辑
     * @param dirPath 创建文件的路径
     * @param tableInfo 字段信息集合，格式为<表名, 字段信息集合>
     * @return void
     * @author zhangxs
     * @date 2022/7/11 15:40
     */
    void createFile(String dirPath, Map<String, List<DBService.Column>> tableInfo);
}
